Skip to content

feature/cross-compile#8

Draft
andreabedini wants to merge 166 commits into
masterfrom
stable-haskell/feature/cross-compile
Draft

feature/cross-compile#8
andreabedini wants to merge 166 commits into
masterfrom
stable-haskell/feature/cross-compile

Conversation

@andreabedini

Copy link
Copy Markdown
Member

Marked as draft to avoid merging.

@andreabedini andreabedini force-pushed the stable-haskell/feature/cross-compile branch 2 times, most recently from 985b8b7 to 9abf046 Compare July 14, 2025 09:23
@andreabedini andreabedini force-pushed the stable-haskell/feature/cross-compile branch from 9abf046 to eeff3cd Compare July 22, 2025 06:54
@andreabedini andreabedini force-pushed the stable-haskell/feature/cross-compile branch from eeff3cd to 6f865c6 Compare August 7, 2025 08:33
@andreabedini andreabedini force-pushed the stable-haskell/feature/cross-compile branch 3 times, most recently from 7d3b026 to ab0a509 Compare August 22, 2025 02:54
parsonsmatt and others added 20 commits March 2, 2026 09:39
…ng-speed

# Conflicts:
#	Cabal/src/Distribution/Simple/PreProcess.hs
Without some distinct identifier, downloaded sources will accumulate
(and have been since the last time the datestamp was updated).

The old caches are ignored and will be purged according to GitHub's
cache expiration, because otherwise we'd continue to carry 4 years'
worth of outdated source tarballs.
When a non-library component has unfilled Backpack signature requirements,
the error message now shows where each requirement came from (e.g.
"brought into scope by build-depends: Fail1") using the ModuleSource
information already available in the ModuleScope.

Updated the Fail3 test golden files and strengthened the test assertion
to verify provenance information is present.

Addresses haskell#7192

run fourmalou

more formatting
- Follow hlint suggestion: use replicateM_
- Follow hlint suggestion: functor law
- Follow hlint suggestion: use flip
- Satisfy fourmolu
Remove commented-out `planPkgOf` function from `SolverInstallPlan`.
HLint monoid laws, functor law and replicateM_
It has backward compatibility, but tagged as `DEPRECATED`, and we build
tests with `-Werror=deprecations`.
update IntegrationTests2 for tasty-1.5.4
The primary entrypoint is now `make bootstrap-jsons`, which is now
documented and called out in `bootstrap/README.md`. It automatically
tries to obtain ghc versions from first `ghcup`, falls back to Nix if
`nix-shell` is found, and if all else fails warns the user to install
the appropriate ghcs. The Nix script can still be used directly, but
now obtains the list of ghc versions from the `Makefile`.
- Format ghc-supported-languages module
- Add an args check with help
- All extensions should be registered
- Exclude known languages
- Rename exceptions to langsAsExts
- Rename executable to ghc-supported-extensions
- Use explicit import lists, except for prelude
- Don't use dieNoVerbosity
- Move to exes/GhcSupportedExtensions.hs
- Handle the zero args case gracefully
- Satisfy fourmolu
- We're checking KnownExtension
- Avoid _ in registered pattern match
- Mention language editions
- Add a note about missing language editions
andreabedini and others added 29 commits June 11, 2026 15:04
available targets are only host
Isolate the common logic between building and only downloading.

_Push the ifs up and the loops down_
Determine packages to build in-place by their solver id, not their package id.
Cabal uses a peculiar c program to check if LD supports and should
use -x. To do this, it shells out to GHC to compiler the C file.
This however requires that GHC will not bail out, yet cabal does
not pass --package-db flags to this GHC invocation, and as such we
can run into situations where GHC bails out, especially during GHC
bootstrap phases where not all boot packages are available.

We however do not need GHC to compiler a c program, and can rely
on the C compiler.

Fundamentally cabal does not allow modelling program dependencies
in the program db, as such we must configure gcc first before using
it.

We make a small change to lib:Cabal (specifically the GHC module,
and it's Internal companion) to allow it to configure gcc first,
before trying to configure ld, and thus having gcc in scope while
configuring ld. This removes the need for the awkward ghc
invocation to compiler the test program.
Split the function into multiple ones.
If a node has dangling edges, then the list of missing neighbours cannot be empty.
Exceptions are not nice but this is an obvious invariant. Graph should provide a better API to make this unnecessary.
Not really a fix. I do not know why this happens.
It is duplicate information since we write the program invocation right after.
This is a partial revert of f47840d

GHC toggles -dyanmic-too for TH and now we're missing shared
interface files.
…r usage

Adds a test package with a Custom Setup.hs that injects the build
compiler's GHC version as a CPP define (SETUP_GHC_VERSION) into
the executable's cppOptions. The executable prints both the
setup-injected version and its own __GLASGOW_HASKELL__, allowing
the test to assert the build compiler was actually used.
@andreabedini andreabedini force-pushed the stable-haskell/feature/cross-compile branch from f14de46 to c0de6fa Compare June 15, 2026 03:37
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.